<template>
    <h3>HelloWorld {{msg}}</h3>
</template>

<script>
export default {
    props: {
        msg: String
    },

    emits: ["hello"],

    /* 
    Vue2组件中有很多【选项】：data method computed watch 生命周期... 
    这种语法称之为【选项式API-optionAPI】
    ----------
    Vue3的语法入口在setup函数中
    setup称之为【组合式API-compositionAPI】
    */
    // setup(props,context) {
    setup(props, { emit }) {
        // console.log("HelloWorld setup", props, context);
        console.log("HelloWorld setup");

        // 发布自定义事件
        // this.$emit("hello", "from HelloWorld.vue")
        emit("hello", "from HelloWorld.vue")
    }

}
</script>